MongoDB Replica Set এবং Read Preference দুটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা MongoDB এর হাই অ্যাভেইলেবিলিটি এবং পারফরম্যান্স নিশ্চিত করতে সহায়তা করে। Replica Set Failover এবং Read Preference ব্যবহৃত হয় ডেটাবেসের প্রতিলিপি ব্যবস্থাপনা এবং ডেটা পড়ার পছন্দ সম্পর্কে কার্যকর সিদ্ধান্ত নেওয়ার জন্য। নিচে এই দুটি বৈশিষ্ট্য বিস্তারিতভাবে আলোচনা করা হলো।
1. Replica Set Failover
MongoDB Replica Set হলো একাধিক MongoDB সার্ভারের একটি গ্রুপ, যেখানে একটিকে primary সার্ভার হিসেবে নির্বাচন করা হয় এবং বাকি সার্ভারগুলি secondary সার্ভার হিসেবে কাজ করে। Replica Set Failover হলো একটি পরিস্থিতি যেখানে MongoDB সার্ভারের প্রাইমারি (primary) সার্ভার অকার্যকর হয়ে গেলে, অন্য একটি সেকেন্ডারি সার্ভারকে প্রাইমারি হিসেবে নির্বাচন করা হয়, যাতে সিস্টেমের চলমানতা অব্যাহত থাকে।
Replica Set Failover কাজের ধরণ:
- Primary Server Failure: যখন primary সার্ভার অকার্যকর হয়ে যায় (যেমন সার্ভার ক্র্যাশ হয়ে গেলে বা নেটওয়ার্ক বিচ্ছিন্ন হলে), তখন MongoDB ফেইলওভার প্রক্রিয়া শুরু হয়।
- Election of New Primary: Replica Set এর বাকি সেকেন্ডারি সার্ভারগুলি নির্বাচন প্রক্রিয়া শুরু করে এবং একটি নতুন primary নির্বাচিত হয়।
- Automatic Failover: MongoDB নিজে থেকে failover প্রক্রিয়া সম্পন্ন করে, যাতে ডেটাবেসের কর্মক্ষমতা অব্যাহত থাকে। ব্যবহারকারীরা জানতে পারে না যে ফেইলওভার ঘটেছে, কারণ এটি অনেক দ্রুত হয়।
Failover এর সুবিধা:
- হাই অ্যাভেইলেবিলিটি: ফেইলওভার প্রক্রিয়া নিশ্চিত করে যে ডেটাবেস সার্ভিস ব্যাহত হবে না।
- ডাউনটাইম কমে যায়: ফেইলওভার প্রক্রিয়ার মাধ্যমে সিস্টেমে ছোট ছোট ডাউনটাইম হয়, যা পারফরম্যান্সকে প্রভাবিত করে না।
ফেইলওভার কনফিগারেশন:
MongoDB Replica Set এর মধ্যে একাধিক সার্ভার থাকে এবং ফেইলওভার প্রক্রিয়াটি MongoDB এর মধ্যে election প্রক্রিয়া চালায়, যার মাধ্যমে নতুন primary নির্বাচন করা হয়।
2. Read Preference
MongoDB তে Read Preference ব্যবহারকারীদের নির্দিষ্ট করে দেয় কোন সার্ভার থেকে ডেটা পড়া হবে, বিশেষ করে যখন MongoDB Replica Set ব্যবহৃত হয়। MongoDB এর মধ্যে Primary এবং Secondary সার্ভার থাকে এবং আপনি Read Preference সেট করে নির্ধারণ করতে পারেন যে, কোন সার্ভার থেকে ডেটা পড়া হবে।
Read Preference এর ধরনগুলি:
Primary: এই মোডে ডেটা শুধুমাত্র primary সার্ভার থেকে পড়া হয়। যদি primary সার্ভার অকার্যকর হয়ে যায়, তবে অ্যাপ্লিকেশনটি failover পর্যন্ত অপেক্ষা করবে।
db.collection.find().readPref('primary')Primary Preferred: এই মোডে, MongoDB প্রথমে primary সার্ভার থেকে ডেটা পড়বে, কিন্তু যদি primary অকার্যকর হয়ে যায়, তবে এটি secondary সার্ভার থেকে ডেটা পড়তে পারে।
db.collection.find().readPref('primaryPreferred')Secondary: এই মোডে, MongoDB ডেটা শুধুমাত্র secondary সার্ভার থেকে পড়বে। সাধারণত এই অপশনটি ব্যবহার করা হয় তখন, যখন primary সার্ভার থেকে খুব বেশি লোড নেওয়া উচিত নয়।
db.collection.find().readPref('secondary')Secondary Preferred: এই মোডে, MongoDB প্রথমে secondary সার্ভার থেকে ডেটা পড়বে, কিন্তু যদি কোনো secondary সার্ভার না থাকে, তবে এটি primary সার্ভার থেকে ডেটা পড়বে।
db.collection.find().readPref('secondaryPreferred')Nearest: এই মোডে, MongoDB ডেটা সেই সার্ভার থেকে পড়বে যেটি primary বা secondary হতে পারে এবং যা ক্লায়েন্টের নিকটতম অবস্থানে রয়েছে (নেটওয়ার্ক দূরত্বের ভিত্তিতে)।
db.collection.find().readPref('nearest')
Read Preference এর সুবিধা:
- পারফরম্যান্স অপটিমাইজেশন: আপনি যদি শুধুমাত্র ডেটা পড়ার জন্য secondary সার্ভার ব্যবহার করেন, তাহলে primary সার্ভারের উপর চাপ কমানো যায়, যা পারফরম্যান্স উন্নত করে।
- হাই অ্যাভেইলেবিলিটি: Secondary সার্ভার ব্যবহার করে ডেটা পড়া গেলে, primary সার্ভারের ব্যস্ততা কমে এবং এটি failover সময়েও সিস্টেমকে স্থিতিশীল রাখে।
- লেটেন্সি কমানো: Nearest অপশন ব্যবহার করলে, MongoDB ক্লায়েন্টের নিকটবর্তী সার্ভার থেকে ডেটা পড়তে পারে, ফলে লেটেন্সি কমে।
Replica Set Failover এবং Read Preference এর মধ্যে সম্পর্ক
- Failover প্রক্রিয়া MongoDB তে ডেটাবেস সার্ভারের অকার্যকতার সময় স্বয়ংক্রিয়ভাবে নতুন primary নির্বাচিত করে, যার ফলে ডেটাবেসের কার্যক্রম অব্যাহত থাকে। এটি হাই অ্যাভেইলেবিলিটি নিশ্চিত করে।
- Read Preference এর মাধ্যমে MongoDB ডেটা পড়ার সিদ্ধান্ত নেয়, যা ডেটাবেসের পারফরম্যান্স এবং লেটেন্সি নিয়ন্ত্রণ করতে সহায়তা করে, বিশেষ করে যখন multiple secondary servers ব্যবহৃত হয়।
সারাংশ
MongoDB তে Replica Set Failover ডেটাবেসের হাই অ্যাভেইলেবিলিটি নিশ্চিত করে, কারণ যখন primary সার্ভার অকার্যকর হয়ে যায়, তখন একটি secondary সার্ভার নতুন primary হিসেবে নির্বাচিত হয়। এর মাধ্যমে ডাউনটাইম কমে যায়। Read Preference ব্যবহার করে আপনি নির্ধারণ করতে পারেন কোন সার্ভার থেকে ডেটা পড়তে হবে, যা পারফরম্যান্স অপটিমাইজেশন এবং লেটেন্সি কমানোর জন্য গুরুত্বপূর্ণ। MongoDB তে এই দুটি বৈশিষ্ট্য ডেটাবেসের পারফরম্যান্স, স্কেলেবিলিটি এবং স্থিতিশীলতা উন্নত করতে সাহায্য করে।
Read more